home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: Franz PD
/
Franz PD Disk #097 (1990-10)(Amiga User Group Deutschland e.V.).zip
/
Franz PD Disk #097 (1990-10)(Amiga User Group Deutschland e.V.).adf
/
Prim
/
Prim.MOD
< prev
next >
Wrap
Text File
|
1989-07-03
|
2KB
|
62 lines
(* Prim - wurde im Jahre 1990 von Marcus Schießer geschrieben
Das Programm ist Freeware. Das Kopierrecht liegt allein beim Autor.
Das Programm dient zur Berrechnung von Primzahlen *)
MODULE Prim;
FROM InOut IMPORT
WriteLn,WriteCard,WriteString,ReadLongCard;
FROM Arts IMPORT
Assert;
FROM MathLib0 IMPORT
sqrt;
FROM SYSTEM IMPORT
ADR;
VAR
zahl,teiler,anzahl,zahlI,zahlII: LONGCARD;
dummy: CARDINAL;
flag: BOOLEAN;
realzahl: REAL;
BEGIN
WriteLn;
WriteString("Prim - © 1990 by Marcus Schießer");
WriteLn;
WriteString("Zahlen müssen >= 5 und ungerade sein");
WriteLn;
WriteString("Von: ");
ReadLongCard(zahlI);
WriteString("Bis: ");
ReadLongCard(zahlII);
WriteLn;
IF (zahlI = 5) THEN
WriteString("2,3,");
END;
dummy:= zahlI MOD 2;
Assert(zahlI>=5,ADR("Zahl ist kleiner als 5!"));
Assert(dummy#0,ADR("Zahl ist gerade!"));
flag:=TRUE;
FOR zahl := zahlI TO zahlII BY 2 DO
realzahl:=FLOAT(zahl);
FOR teiler := 3 TO TRUNC(sqrt(realzahl)) BY 2 DO
dummy:= zahl MOD teiler; (* Speichere Rest der Division *)
IF (dummy=0) THEN (* Rest Null ? *)
flag:=FALSE; (* ja, dann mehr als zwei Teiler *)
END; (* nein, dann weiter suchen *)
END;
IF flag THEN (* 2 Teiler ? *)
INC(anzahl); (* ja, dann Primzahl *)
WriteCard(zahl,0);
WriteString(",");
END;
flag:=TRUE;
END;
WriteLn;
WriteCard(anzahl,0);
WriteString(" Primzahlen gefunden.");
WriteLn;
END Prim.